/*******************************************************************************************
 *  Action.h
 *
 *  Creating and managing Action object structures.
 *
 *******************************************************************************************/







/*******************************************************************************************
 *  INCLUDES :
 *******************************************************************************************/
#include "BulletMLConsts.h"
#include "BulletMLTypes.h"







/*******************************************************************************************
 *  TYPE definitions :
 *******************************************************************************************/

/* The ACTION object strucuture definition : */
#ifndef _ACTION_STRUCT_
#define _ACTION_STRUCT_
typedef struct {

	ObjType		otype;						/* The object's type, as in ...   */
											/* ... the BML type enum.         */

	char		*label;						/* The action object's label.     */

	int			elementsNum;				/* The action object's direction. */
	void		*elements[MAX_ELEMENTS];	/* The action object's speed.     */

} Action;
#endif







/*******************************************************************************************
 *  Function PROTOTYPES :
 *******************************************************************************************/

/* CONSTRUCTOR and DESTRUCTOR : */
Action	*newAction(void);			/* Creates an empty Action object strucutre. */
void 	freeAction(Action *a);		/* Destroys an Action object structure.      */ 


/* FILLING the Action object structure : */
void 	setActionLabel(Action *a, char *l);
void 	pushActionElement(Action *a, void *e);
